home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6-1 / Night Owl's Shareware - PDSI-006-1 - Night Owl Corp (1992).iso / 028a / arj230.exe / TECHNOTE.DOC < prev    next >
Text File  |  1992-01-19  |  5KB  |  130 lines

  1.  
  2.      ARJ TECHNICAL INFORMATION                   January 1992
  3.  
  4.  
  5.      This is an abbreviated version of the documentation in UNARJ archives.
  6.  
  7.  
  8.      Modification history:
  9.      Date      Description of modification:
  10.      --------  ------------------------------------------------------------
  11.      12/03/91  Added BACKUP flag to header arj flags.
  12.      11/21/91  Described the two types of headers separately.
  13.  
  14.  
  15.      ARJ archives contains two types of header blocks:
  16.  
  17.     Archive main header - This is located at the head of the archive
  18.     Local file header   - This is located before each archived file
  19.  
  20.      Structure of main header (low order byte first):
  21.  
  22.      Bytes Description
  23.      ----- -------------------------------------------------------------------
  24.        2   header id (main and local file) = 0xEA60 or 60000U
  25.        2   basic header size (from 'first_hdr_size' thru 'comment' below)
  26.          = first_hdr_size + strlen(filename) + 1 + strlen(comment) + 1
  27.          = 0 if end of archive
  28.  
  29.        1   first_hdr_size (size up to and including 'extra data')
  30.        1   archiver version number
  31.        1   minimum archiver version to extract
  32.        1   host OS   (0 = MSDOS, 1 = PRIMOS, 2 = UNIX, 3 = AMIGA, 4 = MAC-OS)
  33.              (5 = OS/2, 6 = APPLE GS, 7 = ATARI ST, 8 = NEXT)
  34.              (9 = VAX VMS)
  35.        1   arj flags
  36.              (0x01 = NOT USED)
  37.              (0x02 = RESERVED)
  38.              (0x04 = VOLUME_FLAG)  indicates presence of succeeding
  39.                        volume
  40.              (0x08 = NOT USED)
  41.              (0x10 = PATHSYM_FLAG) indicates archive name translated
  42.                        ("\" changed to "/")
  43.              (0x20 = BACKUP_FLAG) indicates backup type archive
  44.        1   reserved
  45.        1   file type (2 = comment header)
  46.        1   reserved
  47.        4   date time when original archive was created
  48.        4   reserved  (future use may be archive size starting at main header)
  49.        4   reserved
  50.        4   reserved
  51.        2   filespec position in filename
  52.        2   (currently not used)
  53.        2   (currently not used)
  54.        ?   (currently none)
  55.  
  56.        ?   filename of archive when created (null-terminated string)
  57.        ?   archive comment  (null-terminated string)
  58.  
  59.        4   basic header CRC
  60.  
  61.        2   1st extended header size (0 if none)
  62.        ?   1st extended header (currently not used)
  63.        4   1st extended header's CRC (not present when 0 extended header size)
  64.  
  65.  
  66.      Structure of local file header (low order byte first):
  67.  
  68.      Bytes Description
  69.      ----- -------------------------------------------------------------------
  70.        2   header id (main and local file) = 0xEA60 or 60000U
  71.        2   basic header size (from 'first_hdr_size' thru 'comment' below)
  72.          = first_hdr_size + strlen(filename) + 1 + strlen(comment) + 1
  73.          = 0 if end of archive
  74.  
  75.        1   first_hdr_size (size up to and including 'extra data')
  76.        1   archiver version number
  77.        1   minimum archiver version to extract
  78.        1   host OS   (0 = MSDOS, 1 = PRIMOS, 2 = UNIX, 3 = AMIGA, 4 = MAC-OS)
  79.              (5 = OS/2, 6 = APPLE GS, 7 = ATARI ST, 8 = NEXT)
  80.              (9 = VAX VMS)
  81.        1   arj flags (0x01 = GARBLED_FLAG) indicates passworded file
  82.              (0x02 = RESERVED)
  83.              (0x04 = VOLUME_FLAG)  indicates continued file to next
  84.                        volume (file is split)
  85.              (0x08 = EXTFILE_FLAG) indicates file starting position
  86.                        field (for split files)
  87.              (0x10 = PATHSYM_FLAG) indicates filename translated
  88.                        ("\" changed to "/")
  89.              (0x20 = BACKUP_FLAG)  indicates file marked as backup
  90.        1   method    (0 = stored, 1 = compressed most ... 4 compressed fastest)
  91.        1   file type (0 = binary, 1 = 7-bit text)
  92.              (3 = directory, 4 = volume label)
  93.        1   reserved
  94.        4   date time modified
  95.        4   compressed size
  96.        4   original size (this will be different for text mode compression)
  97.        4   original file's CRC
  98.        2   filespec position in filename
  99.        2   file access mode
  100.        2   host data (currently not used)
  101.        ?   extra data
  102.        4 bytes for extended file starting position when used
  103.        (this is present when EXTFILE_FLAG is set)
  104.  
  105.        ?   filename (null-terminated string)
  106.        ?   comment  (null-terminated string)
  107.  
  108.        4   basic header CRC
  109.  
  110.        2   1st extended header size (0 if none)
  111.        ?   1st extended header (currently not used)
  112.        4   1st extended header's CRC (not present when 0 extended header size)
  113.  
  114.        ...
  115.  
  116.        ?   compressed file
  117.  
  118.  
  119.      Time stamp format:
  120.  
  121.     31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
  122.        |<---- year-1980 --->|<- month ->|<--- day ---->|
  123.  
  124.     15 14 13 12 11 10  9  8  7  6  5  4  3    2  1  0
  125.        |<--- hour --->|<---- minute --->|<- second/2 ->|
  126.  
  127.  
  128.      end of document
  129.  
  130.